package com.loong.system.common.forehead.param;

import com.loong.common.validator.group.CommonInsert;
import com.loong.common.validator.group.CommonUpdate;
import com.loong.common.validator.group.CommonValidate;
import lombok.*;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * @Description:
 * @Author: LiuQun
 * @Date: 2021/1/4 17:48
 */
@Builder
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class SystemFeedbackForeheadParam {

    /**
     * 主键
     */
    @NotNull(groups = {CommonUpdate.class, CommonValidate.class},message = "更新时id不能为空")
    private Long id;

    /**
     * 用户id
     */
    private Long userId;

    /**
     * 用户类型
     */
    private Integer userType;

    /**
     * 区号
     */
    @NotBlank(message = "新增时区号不能为空",groups = {CommonInsert.class})
    private String areaCode;

    /**
     * 手机号码
     */
    @NotBlank(message = "新增时手机号码不能为空",groups = {CommonInsert.class})
    private String phoneNum;

    /**
     * 标题
     */
    @NotBlank(message = "新增时标题不能为空",groups = { CommonInsert.class})
    private String title;

    /**
     * 内容
     */
    @NotBlank(message = "新增时内容不能为空",groups = { CommonInsert.class})
    private String content;

    /**
     * 是否回复：0(false)未回复，1(true)已回复
     */
    private Boolean replied;

    /**
     * 回复id
     */
    private Long replyId;

    /**
     * 回复时间
     */
    private Date replyTime;

    /**
     * 回复人的id
     */
    private Long replierId;

    /**
     * 回复人
     */
    private String replier;

    /**
     * 反馈类型id
     */
    @NotNull(message = "新增时反馈类型不能为空",groups = {CommonInsert.class})
    private Long feedbackTypeId;

    /**
     *  用户评价
     */
    @NotBlank(message = "用户评价不能为空",groups = {CommonValidate.class})
    private String comment;

    /**
     * 用户评分
     */
    @NotNull(message = "用户评价不能为空",groups = {CommonValidate.class})
    private Float score;

    /**
     * 完成时间
     */
    private Date completeTime;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date lastUpdateTime;
}
